npm 和 npx 的差別


Posted by hoyi-23 on 2021-07-20

會使用 Node.js 的人對npm一定不陌生!

NPM 是什麼?

npm (node package manager) 是一個node套件的管理系統,npm 讓我們可以更快速簡單的下載、刪除、更新 Node 套件。


為甚麼會有 NPX 的出現?

node 套件非常的多,有些套件你可能就只是想要試試看套件的功能與指令,並不想直接下載套件。
但是使用 npm 是沒辦法做到。 所以 npx 就出現了。
npx 和 npm 一樣是套件管理工具(也是cli工具),都是讓我們可以更簡單的下載管理套件。


NPM 和 NPX 的比較

npm 永久安裝,npx 安裝後即移除

NPM

npm 自己本身並沒有在執行任何套件,若要使用npm來執行任何套件,需要先使用npm將套件加入至 package.json,再使用指令執行。
使用 npm 安裝套件 會直接安裝在你的專案和本機上。

指令:

npm install -g global-package //下載一個全域套件
global-pakage local-package //使用全域套件執行本地套件

npx

使用 npx 安裝,安裝的套件在執行完後就會刪掉。

指令:

npx global-pakage local-package

上面的例子中,npm 會先全局性的安裝 global-package ,這個 global-package (dependency) 也會一直存在本機 node_modules 下,如果使用 npx 命令, global-package 會被安裝在臨時安裝包上,等到項目初始化完成後就會刪除,不用全局性的安裝,避免被汙染。


什麼時候要用 NPX ?

像是那種一次性使用的,如 creat-react-app 它只有用在建立專案的最一開始,之後就不會用了! 或是像 npkill 套件, 這個套件是會幫我們清理無效的 node_modules ,在大專案下可以五到六個月跑一次,這時候使用 NPX 就再好不過啦!
不過最簡單的方式就是看官方文件啦! 官方用什麼 你就用什麼~

參考原文件: https://www.freecodecamp.org/news/npm-vs-npx-whats-the-difference/


#npm #npx







Related Posts

Day 173, 174

Day 173, 174

Secure Apache Using Certbot with Let's Encrypt on Ubuntu 20.04

Secure Apache Using Certbot with Let's Encrypt on Ubuntu 20.04

動態型別

動態型別


Comments